/**
 *@把时间戳装换成时间
 */
function getTime(nS) {
  return new Date(parseInt(nS) * 1000).toLocaleString().replace(/:\d{1,2}$/,' ');
}
/**
 * @把中国标准时间装换成yy-mm-dd
 */
function getDate(d) {
  d= new Date(d);
  return d.getFullYear() + '-' + (d.getMonth() + 1) + '-' + d.getDate() + ' ' + d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
}
/**
 * @把不标准json时间装换成正常时间  YYYY:MM:DD HH:MM:SS
 * */
function renderTime(date) {
  let dates = new Date(date).toJSON();
  return new Date(+new Date(dates) + 8 * 3600 * 1000).toISOString().replace(/T/g, ' ').replace(/\.[\d]{3}Z/, '')
}
/**
 * @获取系统当前时间
 * */
function getLocalTime(){
  return getDate(new Date());
}
/**
 * @深克隆
 * @param  {[type]} parent object 需要进行克隆的对象
 * @return {[type]}        深克隆后的对象
 */
function clone(obj) {
  let _obj = JSON.stringify(obj);
  return JSON.parse(_obj);
}
/**
 * @时间格式装换
 *
 * 对Date的扩展，将 Date 转化为指定格式的String
 * 月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q) 可以用 1-2 个占位符，
 * 年(y)可以用 1-4 个占位符，毫秒(S)只能用 1 个占位符(是 1-3 位的数字)
 * */
Date.prototype.Format = function (fmt) { //author: lsz
  var o = {
    "M+": this.getMonth() + 1, //月份
    "d+": this.getDate(), //日
    "h+": this.getHours(), //小时
    "m+": this.getMinutes(), //分
    "s+": this.getSeconds(), //秒
    "q+": Math.floor((this.getMonth() + 3) / 3), //季度
    "S+": this.getMilliseconds() //毫秒
  };
  if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  for (var k in o)
    if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  return fmt;
}
/**
 * @把时间格式装换成 yyyy-MM-dd'T'HH:mm:ss.SSSZ
 * */
function getTtime(obj,str){
  return (new Date(obj)).Format(str);
}
/**
 * @判断为空
 * */
function isNull(val){
  if(val===''||val===null||val===undefined){
    return true;
  }
  return false;
}
module.exports = {
  getLocalTime,getDate,getTime,renderTime,clone,getTtime,isNull
}
